package top.jolyoulu.codegenweb.service.bll;

import top.jolyoulu.codegenweb.entity.bo.form.GenTemplateFileFormBO;
import top.jolyoulu.codegenweb.entity.bo.form.GenTemplateGroupFormBO;
import top.jolyoulu.codegenweb.entity.vo.GenTemplateFileVO;
import top.jolyoulu.codegenweb.entity.vo.GenTemplateGroupVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @Author: JolyouLu
 * @Date: 2023/4/8 14:44
 * @Description
 */
public interface ApiGenTemplateService {

    /**
     * 获取所有模板信息
     * @return
     */
    List<GenTemplateGroupVO> list();

    /**
     * 添加模板组
     * @param bo
     */
    void groupAdd(GenTemplateGroupFormBO bo);

    /**
     * 编辑模板组
     * @param bo
     */
    void groupEdit(GenTemplateGroupFormBO bo);

    /**
     * 删除模板组
     * @param ids
     */
    void groupDel(List<String> ids);

    /**
     * 模板组下的文件列表
     * @param groupId
     * @return
     */
    List<GenTemplateFileVO> groupFileList(String groupId);

    /**
     * 模板文件基础信息
     *
     * @param id
     * @return
     */
    GenTemplateFileVO fileById(String id);

    /**
     * 添加模板文件
     *  @param bo
     *
     */
    void fileAdd(GenTemplateFileFormBO bo);

    /**
     * 编辑模板文件
     *  @param bo
     *
     */
    void fileEdit(GenTemplateFileFormBO bo);

    /**
     * 删除模板文件
     * @param ids
     */
    void fileDel(List<String> ids);

    /**
     * 获取模板文件流
     * @param id
     * @param response
     */
    void fileDownload(String id, HttpServletResponse response);

}
